#! /usr/bin/env python
# Forearm camera configuration

PACKAGE='mst_position'
import roslib; roslib.load_manifest(PACKAGE)

from math import pi

from driver_base.msg import SensorLevels
from dynamic_reconfigure.parameter_generator_catkin import *

gen = ParameterGenerator()
#       Name                    Type      Reconfiguration level             Description                                        Default    Min   Max
gen.add("use_gpsd",             bool_t,   SensorLevels.RECONFIGURE_STOP,    "bool to use the garmin gps",                     False)
gen.add("continue_when_done",             bool_t,   SensorLevels.RECONFIGURE_STOP,    "bool to use the garmin gps",                     False)
gen.add("go_to_waypoints",      bool_t,   SensorLevels.RECONFIGURE_STOP,    "option to go forward or follow waypoints",       False)
gen.add("waypoint_radius",      double_t, SensorLevels.RECONFIGURE_STOP,    "radius considerd to reach waypoints",            1,        0,    10)
gen.add("dummy_point_radius",      double_t, SensorLevels.RECONFIGURE_STOP,    "radius considerd to reach waypoints",            3,        0,    10)
gen.add("reverse_order",        bool_t,   SensorLevels.RECONFIGURE_STOP,    "reverses order of movement",                     False)
gen.add("reset_waypoints",      bool_t,   SensorLevels.RECONFIGURE_STOP,    "resets waypoint list to begining",               False)
gen.add("skip_waypoint",        bool_t,   SensorLevels.RECONFIGURE_STOP,    "option to skip a waypoint",                      False)
gen.add("pause",                bool_t,   SensorLevels.RECONFIGURE_STOP,    "stops the robot and pauses waypoints",           False)
gen.add("heading_offset",       double_t, SensorLevels.RECONFIGURE_STOP,    "offset aplied to gps heading",                   0,       -pi,   pi)
gen.add("use_dummy",            bool_t,   SensorLevels.RECONFIGURE_STOP,    "option use dummy gps for testing",               True)
gen.add("dummy_latitude",       double_t, SensorLevels.RECONFIGURE_STOP,    "latitude for dummy gps",                         1,       -90,   90)
gen.add("dummy_longitude",      double_t, SensorLevels.RECONFIGURE_STOP,    "longitude for dummy gps",                        1,       -90,   90)
gen.add("dummy_heading",        double_t, SensorLevels.RECONFIGURE_STOP,    "heading for dummy gps in radians",               1,       -pi,   pi)

gen.add("way_1_latitude",       double_t, SensorLevels.RECONFIGURE_STOP,    "latitude for waypoint",                          1,       -90,   90)
gen.add("way_1_longitude",      double_t, SensorLevels.RECONFIGURE_STOP,    "longitude for waypoint",                         1,       -90,   90)
gen.add("way_1_priority",       int_t,    SensorLevels.RECONFIGURE_STOP,    "priority of waypoint(0 is ignored)",             1,        0,    10)
gen.add("way_1_limit",          double_t, SensorLevels.RECONFIGURE_STOP,    "timelimit for waypoint(0 is ignored) in min",    1,        0,    90)
gen.add("way_2_latitude",       double_t, SensorLevels.RECONFIGURE_STOP,    "latitude for waypoint",                          1,       -90,   90)
gen.add("way_2_longitude",      double_t, SensorLevels.RECONFIGURE_STOP,    "longitude for waypoint",                         1,       -90,   90)
gen.add("way_2_priority",       int_t,    SensorLevels.RECONFIGURE_STOP,    "priority of waypoint(0 is ignored)",             1,        0,    10)
gen.add("way_2_limit",          double_t, SensorLevels.RECONFIGURE_STOP,    "timelimit for waypoint(0 is ignored) in min",    1,        0,    90)
gen.add("way_3_latitude",       double_t, SensorLevels.RECONFIGURE_STOP,    "latitude for waypoint",                          1,       -90,   90)
gen.add("way_3_longitude",      double_t, SensorLevels.RECONFIGURE_STOP,    "longitude for waypoint",                         1,       -90,   90)
gen.add("way_3_priority",       int_t,    SensorLevels.RECONFIGURE_STOP,    "priority of waypoint(0 is ignored)",             1,        0,    10)
gen.add("way_3_limit",          double_t, SensorLevels.RECONFIGURE_STOP,    "timelimit for waypoint(0 is ignored) in min",    1,        0,    90)
gen.add("way_4_latitude",       double_t, SensorLevels.RECONFIGURE_STOP,    "latitude for waypoint",                          1,       -90,   90)
gen.add("way_4_longitude",      double_t, SensorLevels.RECONFIGURE_STOP,    "longitude for waypoint",                         1,       -90,   90)
gen.add("way_4_priority",       int_t,    SensorLevels.RECONFIGURE_STOP,    "priority of waypoint(0 is ignored)",             1,        0,    10)
gen.add("way_4_limit",          double_t, SensorLevels.RECONFIGURE_STOP,    "timelimit for waypoint(0 is ignored) in min",    1,        0,    90)
gen.add("way_5_latitude",       double_t, SensorLevels.RECONFIGURE_STOP,    "latitude for waypoint",                          1,       -90,   90)
gen.add("way_5_longitude",      double_t, SensorLevels.RECONFIGURE_STOP,    "longitude for waypoint",                         1,       -90,   90)
gen.add("way_5_priority",       int_t,    SensorLevels.RECONFIGURE_STOP,    "priority of waypoint(0 is ignored)",             1,        0,    10)
gen.add("way_5_limit",          double_t, SensorLevels.RECONFIGURE_STOP,    "timelimit for waypoint(0 is ignored) in min",    1,        0,    90)
gen.add("way_6_latitude",       double_t, SensorLevels.RECONFIGURE_STOP,    "latitude for waypoint",                          1,       -90,   90)
gen.add("way_6_longitude",      double_t, SensorLevels.RECONFIGURE_STOP,    "longitude for waypoint",                         1,       -90,   90)
gen.add("way_6_priority",       int_t,    SensorLevels.RECONFIGURE_STOP,    "priority of waypoint(0 is ignored)",             1,        0,    10)
gen.add("way_6_limit",          double_t, SensorLevels.RECONFIGURE_STOP,    "timelimit for waypoint(0 is ignored) in min",    1,        0,    90)
gen.add("way_7_latitude",       double_t, SensorLevels.RECONFIGURE_STOP,    "latitude for waypoint",                          1,       -90,   90)
gen.add("way_7_longitude",      double_t, SensorLevels.RECONFIGURE_STOP,    "longitude for waypoint",                         1,       -90,   90)
gen.add("way_7_priority",       int_t,    SensorLevels.RECONFIGURE_STOP,    "priority of waypoint(0 is ignored)",             1,        0,    10)
gen.add("way_7_limit",          double_t, SensorLevels.RECONFIGURE_STOP,    "timelimit for waypoint(0 is ignored) in min",    1,        0,    90)
gen.add("way_8_latitude",       double_t, SensorLevels.RECONFIGURE_STOP,    "latitude for waypoint",                          1,       -90,   90)
gen.add("way_8_longitude",      double_t, SensorLevels.RECONFIGURE_STOP,    "longitude for waypoint",                         1,       -90,   90)
gen.add("way_8_priority",       int_t,    SensorLevels.RECONFIGURE_STOP,    "priority of waypoint(0 is ignored)",             1,        0,    10)
gen.add("way_8_limit",          double_t, SensorLevels.RECONFIGURE_STOP,    "timelimit for waypoint(0 is ignored) in min",    1,        0,    90)
gen.add("way_9_latitude",       double_t, SensorLevels.RECONFIGURE_STOP,    "latitude for waypoint",                          1,       -90,   90)
gen.add("way_9_longitude",      double_t, SensorLevels.RECONFIGURE_STOP,    "longitude for waypoint",                         1,       -90,   90)
gen.add("way_9_priority",       int_t,    SensorLevels.RECONFIGURE_STOP,    "priority of waypoint(0 is ignored)",             1,        0,    10)
gen.add("way_9_limit",          double_t, SensorLevels.RECONFIGURE_STOP,    "timelimit for waypoint(0 is ignored) in min",    1,        0,    90)
gen.add("way_10_latitude",      double_t, SensorLevels.RECONFIGURE_STOP,    "latitude for waypoint",                          1,       -90,   90)
gen.add("way_10_longitude",     double_t, SensorLevels.RECONFIGURE_STOP,    "longitude for waypoint",                         1,       -90,   90)
gen.add("way_10_priority",      int_t,    SensorLevels.RECONFIGURE_STOP,    "priority of waypoint(0 is ignored)",             1,        0,    10)
gen.add("way_10_limit",         double_t, SensorLevels.RECONFIGURE_STOP,    "timelimit for waypoint(0 is ignored) in min",    1,        0,    90)

exit(gen.generate(PACKAGE, "dynamic_reconfigure_node", "Position_Params"))

